package adapter;

/**
 * 适配器模式
 * 1. 适配器模式是拿来干什么的 ?
 *      将一个不合适给客户用的东西, 给转换成能用, 好用的
 *
 * 2. 有没有实际使用适配器的例子 ?
 *      现实生活中: 比如新闻联播时有个手语翻译的小画面;
 *                 比如电视要连我的音响, 就需要买个110 的转接器和线...
 *                 比如 很多耳机已经没有了 3.5mm 耳机接口, 需要用一个 "type-c 转 3.5mm" 转接口
 *
 * 一点想法: 感觉跟装饰器模式有点相似, 都是类里面包有一个 private 被修饰类 对象;
 */
public class AdapterPattern {
    public static void main(String[] args) {
        String encipherPassword = new Adapter(new User("abc123")).getEncryptedPassword();
        System.out.println(encipherPassword);
    }
}

class User {
    private String password;

    public User(String password) {
        this.password = password;
    }

    public String getPassword(){
        return password;
    }
}

interface Encipher{
    public String getEncryptedPassword();
}

class Adapter implements Encipher {
    private User user;

    public Adapter(User user) {
        this.user = user;
    }

    @Override
    public String getEncryptedPassword() {
        return this.user.getPassword().toUpperCase();
    }
}

